<?php
set_include_path('../offline');
require_once('functions.php');

//fonction pour charger automatiquement les classes
spl_autoload_register('generic_autoload');
	
//définition de la connexion à la base
$pdo = new myPdo('mysql:host=localhost;dbname=associations', 'root', '7au864pq');
Controller_Template::$db = $pdo;

//configuration de l'appli
Config::set_slot('root', 'http://associations-genlis.fr/');
Config::set_slot('home_max_actualites_image', 3);
Config::set_slot('home_max_actualites_simple', 15);
Config::set_slot('actualites_max_page', 10);
Config::set_slot('categories_max_page', 10);

//ajoute main.css à toutes les pages
add_css(Config::get_slot('root', '') . 'css/main.css');

//analyse l'uri
preg_match(
    '#^/([a-z]+)/([a-z0-9_-]+)\.html([?a-z0-9=]*)$#',
    $_SERVER['REQUEST_URI'],
    $match);

//temporisation de sortie
ob_start();

if(!empty($match[1]))//module
{
	//recupérer l'action
	if( preg_match('#^([a-z]+)$#', $match[2], $match2) )//action sans argument id
	{
		$action = $match2[1];
	}
	else
	{
		if(preg_match('#^([a-z]+)_([0-9]+)_(.+)$#', $match[2], $match3))//action avec id numerique
		{
			// TODO corriger expression régulière pour action show avec id
			$action = $match3[1];
			$id = $match3[2];
		}
		else//
		{
			$action = 'index'; 
		}
	}
	
	switch($match[1])//modules
	{
		case 'actualite':
			Config::set_slot('active', 'news');
			switch($action)
			{
				case 'index':
					$controller = Controller_Actualite::getInstance();
					$controller->index();
					break;
				case 'show':
					$controller = Controller_Actualite::getInstance();
					$controller->show($id);
					break;
				default:
					$controller = Controller_Erreur::getInstance();
					$controller->show("Page non trouvée");
					break;
			}
			break;
		case 'agenda':
			Config::set_slot('active', 'agenda');
			switch($action)
			{
				case 'index':
					$controller =Controller_Agenda::getInstance();
					$controller->index();
					break;
				default:
					$controller = Controller_Erreur::getInstance();
					$controller->show("Page non trouvée");
					break;
			}
			break;
		default:
			$controller = Controller_Erreur::getInstance();
			$controller->show("Page non trouvée");
			break;
	}
}
else //pas de module donc page d'accueil
{
	$controller = Controller_Home::getInstance();
	$controller->index();
}

//recupère le contenu dans une variable
$content = ob_get_contents();
ob_end_clean();

//affiche le layout qui affichera le contenu de la variable $content
require('view/layout.php');
?>
